package com.nowcoder.community.util;

import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.DigestUtils;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class CommunityUtil {

    // 生成随机字符串
    public static String generateUUID() {
        // 把随机字符串的连接符转化为空字符串，因为随机字符串由字母还有-组成
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    // MD5加密
    // hello -> abc123def456
    // hello + 3e4a8 -> abc123def456abc
    public static String md5(String key) {
        if (StringUtils.isBlank(key)) {
            return null;
        }
        return DigestUtils.md5DigestAsHex(key.getBytes());
    }

    // 添加异步显示的工具类，可以转换为JSON数据，而不是和以前一样需要重定义项页面
    // 通常返回浏览器的时候会返回编码、提示信息以及业务数据（不同业务数据不同）
    // 转为JSON数据
    public static String getJSONString(int code, String msg, Map<String,Object> map){
        JSONObject json = new JSONObject();
        json.put("code",code);
        json.put("msg",msg);
        if (map != null){
            for (String key : map.keySet()) {
                json.put(key,map.get(key));
            }
        }
        return json.toJSONString();
    }
    // 重载便于调用
    public static String getJSONString(int code, String msg){
        return getJSONString(code,msg,null);
    }
    public static String getJSONString(int code){
        return getJSONString(code,null,null);
    }
    // 便于深入理解直接在这里面写一个测试类进行测试
//    public static void main(String[] args) {
//        HashMap<String, Object> map = new HashMap<>();
//        map.put("name","hxb");
//        map.put("age",22);
//        System.out.println(getJSONString(0,"ok",map));
//    }

}
